/**
 * @description 文件操作
 */

import { objecter, loger } from '@daelui/dogjs/dist/components.js'
import ds, { database } from './service.js'

// 是否移动端
const isPlus = typeof plus === 'object' && typeof plus.io === 'object'

export default {
  // 查询列表(分页)
  queryListByPage (data, options) {
    options = options || {}
    options.sort = options.sort || [{ field: 'createTime', by: 'desc' }]
    return database.table('dpod_file').queryByPage(data, options)
  },
  // 查询列表
  queryList (data, options) {
    options = options || {}
    options.sort = options.sort || [{ field: 'createTime', by: 'desc' }]
    return database.table('dpod_file').select(data, options)
  },
  // 查询单个
  queryItem (data, options) {
    return database.table('dpod_file').select(data, options).then(list => {
			list = Array.isArray(list) ? list : []
			return list[0]
		})
  },
  // 添加
  insert (data) {
    return database.table('dpod_file').insert(data)
  },
  // 更新
  update (data, options) {
    return database.table('dpod_file').update(data, options)
  },
  // 删除
  delete (data, options) {
    // 删除文件
    this.queryItem(data, options).then(res => {
      deleteLocalFile(res)
    })
    return database.table('dpod_file').delete(data, options)
  },
  // 删除列表
  deleteList (data, options) {
    // 删除文件
    let list = Array.isArray(data) ? data : [data]
    list.forEach(item => {
      deleteLocalFile(item)
    })
    return database.table('dpod_file').delete(data, options)
  }
}

export {
  database
}

// 删除本地文件
export const deleteLocalFile = function (item) {
  item = item || {}
  if (!/doc/i.test(item.path) || !isPlus) {
    return Promise.resolve(true)
  }
  return new Promise((resolve, reject) => {
    plus.io.resolveLocalFileSystemURL(item.path, function(entry) {
      entry.remove(function(e) {
        resolve(e)
      }, function(e) {
        loger.error(e)
        reject(e)
      })
    })
  })
}